//1.文本初始化加载区
$(function() {
	//1：页面内容初始化
	
    //2：按钮绑定
    $("#btn_save").live("click", function() {
        save(this);
    });
    
    $("#btn_clean").live("click", function() {
       formReset();
    });
    
    //3：其它初始化方法
    formValidate();
	dataOptBind();
});

//2.内容保存
function save(thisObj) {
		if($("#editForm").valid()){
	    $.ajax({
	    	type : "post",
	    	dataType : "json",
	    	url : ctx+"/user/user-employee!save.action",
	        data : saveData(),
	        success : function(data, textStatus) {
		        if (data.status == "1") {//成功
		        	if (data.id != undefined) {
			            $("#id").val(data.id);//回写当前对像的ID
			            SynchroSaveData();//同步数据到列表
			            alert("保存成功！");
		            } else {
						SynchroUpdateData();//数据更新到列表
						alert("修改成功！");
					}
					formReset();//重置表单
		        }else{
		        	alert("操作失败，请稍后重试！");
		        }
	        },
	        error:function(){
	       	 	alert("操作失败，请稍后重试！");
	        }
	    });
    }
}

//2.1保存数据
function saveData(thisObj) {
	var saveJsonData = {
		'id' : $("#id").val(),//主键
		'cnName' : $("#cnName").val(),//中文名字
		'enName' : $("#enName").val(),//英文名称
		'sex' : $("#sex").val(),//性别，dict
		'mobile' : $("#mobile").val(),//手机
		'email' : $("#email").val(),//电子邮箱
		'telephone' : $("#telephone").val(),//电话
		'hireDate' : $("#hireDate").val(),//入职时间
		'fireDate' : $("#fireDate").val(),//离职时间
		'empState' : $("#empState").val(),//员工有效状态，dict
		'company' : $("#company").val(),//所属公司，dict 名称或id根据实际情况定
		'organId' : $("#organId").val(),//所属部门
		'position' : $("#position").val(),//职务，dict
		'displayName' : $("#displayName").val(),//应用程序中显示的名子
		'modifyTime' : $("#modifyTime").val(),//修改时间
		'chargeDepartment' : $("#chargeDepartment").val(),//主管部门组织id
		'validFlag' : $("#validFlag").val(),//有效标志
	};
	return saveJsonData;
}

//2.2新增后的数据显示到列表
function SynchroSaveData() {
	var content = $("#resultBody");
	var tmpHtml = $("#resultTemplate").html();
	var tmpObj = $(tmpHtml);
	var id = $("#id").val();
	content.prepend(inputCon(tmpObj));
	code2name(id);
	dataOptBind(content);
}

//2.3修改操作后的数据更新
function SynchroUpdateData() {
	var id = $("#id").val();
	var tmpObj = $("span[objId='" + id + "']", $("#resultBody")).parent().parent();
	inputCon(tmpObj);
	code2name(id);
}

//2.*公共方法：数据填充
function inputCon(tmpObj) {
	var isDefault = ($(":checkbox:checked").val() != undefined) ? "1" : "0";
	
	$("span[name='id']", tmpObj).text($("#id").val());
	$("span[name='cnName']", tmpObj).text($("#cnName").val());
	$("span[name='enName']", tmpObj).text($("#enName").val());
	$("span[name='sex']", tmpObj).text($("#sex").val());
	$("span[name='mobile']", tmpObj).text($("#mobile").val());
	$("span[name='email']", tmpObj).text($("#email").val());
	$("span[name='telephone']", tmpObj).text($("#telephone").val());
	$("span[name='hireDate']", tmpObj).text($("#hireDate").val());
	$("span[name='fireDate']", tmpObj).text($("#fireDate").val());
	$("span[name='empState']", tmpObj).text($("#empState").val());
	$("span[name='company']", tmpObj).text($("#company").val());
	$("span[name='organId']", tmpObj).text($("#organId").val());
	$("span[name='position']", tmpObj).text($("#position").val());
	$("span[name='displayName']", tmpObj).text($("#displayName").val());
	$("span[name='modifyTime']", tmpObj).text($("#modifyTime").val());
	$("span[name='chargeDepartment']", tmpObj).text($("#chargeDepartment").val());
	$("span[name='validFlag']", tmpObj).text($("#validFlag").val());
	$("span[name='optList']", tmpObj).attr("objId", $("#id").val());//操作容器ID赋值
	return tmpObj;
}

//2.*代码名称的转换过程  id为了全部转换准备 tmpObj记录容器对像
function code2name(id,tmpObj) {
	//以下内容仅供参考
	var objIds = $("span[name='optList']", $("#resultBody"));
	$("span[name='isDefault']", $("#resultBody")).each(function(i) {
		var val = $(this).text();
		var objId = $(objIds.get(i)).attr("objId");
		if (val == "1" && id == undefined) {
			$(this).next().text("是");
		} else if (val == "1" && id != undefined && id == objId) {
			$(this).next().text("是");
		} else {
			$(this).next().text("");
			$(this).text("0");
		}
	});
}

//2.*新增后的数据显示到列表   两部分内容：初始化记录绑定 和 后ajax 新增记录的绑定 
function dataOptBind(content) {
	$("a[name='delOpt']", content).live('click', function() {
				delOpt($(this));
			});
	$("a[name='modOpt']", content).live('click', function() {
				modOpt($(this));
			});
}

//3.1 删除操作：删除当前记录，并刷新页面[回刷页面时要重新计算分页]
function delOpt(thisObj) {
	var id = $(thisObj).parent().attr("objId");
	if (confirm("确认要删除此记录？")) {
		$.ajax({
			type : "post", 
			dataType : "json", 
			url : ctx+"/user/user-employee!delete.action",
			data : {"id" : id},
			success : function(data, textStatus) {
				if (data.status == "1") {//
					$("span[objId='" + id + "']", $("#resultBody")).parent().parent().remove();
					if (id == $("#id").val()) {
						formReset();
					}
					alert("删除成功！");
				} else {
					alert("操作失败，请稍后重试！");
				}
			},
			error : function() {
				alert("操作失败，请稍后重试！");
			}
		});
	}
}

//3.2 修改相关操作
function modOpt(thisObj) {
	var content = thisObj.parent().parent().parent();//记录容器
	$("#id").val($("span[name='id']", content).text());
	$("#cnName").val($("span[name='cnName']", content).text());
	$("#enName").val($("span[name='enName']", content).text());
	$("#sex").val($("span[name='sex']", content).text());
	$("#mobile").val($("span[name='mobile']", content).text());
	$("#email").val($("span[name='email']", content).text());
	$("#telephone").val($("span[name='telephone']", content).text());
	$("#hireDate").val($("span[name='hireDate']", content).text());
	$("#fireDate").val($("span[name='fireDate']", content).text());
	$("#empState").val($("span[name='empState']", content).text());
	$("#company").val($("span[name='company']", content).text());
	$("#organId").val($("span[name='organId']", content).text());
	$("#position").val($("span[name='position']", content).text());
	$("#displayName").val($("span[name='displayName']", content).text());
	$("#modifyTime").val($("span[name='modifyTime']", content).text());
	$("#chargeDepartment").val($("span[name='chargeDepartment']", content).text());
	$("#validFlag").val($("span[name='validFlag']", content).text());
	$("#id").val($("span[name='optList']", content).attr("objId"));
}

//4.表单重置 
function formReset() {
	document.getElementById("editForm").reset();
	$("#id").val("");
}

//5.start-------------表单的其它操作 ---------------
function otherOperate() {
	//其它操作
}
//5.end-------------表单的其它操作 ---------------

//**END**.保存前有验证
function formValidate() {
		$("#editForm").validate({
		rules: {
			'id': {
			     required: true
			     ,maxlength:32
				},
			'cnName': {
			     required: true
			     ,maxlength:100
				},
			'enName': {
			     required: true
			     ,maxlength:50
				},
			'sex': {
			     required: true
			     ,maxlength:1
				},
			'mobile': {
			     required: true
			     ,maxlength:255
				},
			'email': {
			     required: true
			     ,maxlength:100
				},
			'telephone': {
			     required: true
			     ,maxlength:255
				},
			'hireDate': {
			     required: true
			     ,maxlength:19
				},
			'fireDate': {
			     required: true
			     ,maxlength:19
				},
			'empState': {
			     required: true
			     ,maxlength:1
				},
			'company': {
			     required: true
			     ,maxlength:45
				},
			'organId': {
			     required: true
			     ,maxlength:32
				},
			'position': {
			     required: true
			     ,maxlength:50
				},
			'displayName': {
			     required: true
			     ,maxlength:45
				},
			'modifyTime': {
			     required: true
			     ,maxlength:19
				},
			'chargeDepartment': {
			     required: true
			     ,maxlength:32
				},
			'validFlag': {
			     required: true
			     ,maxlength:1
				}
		},
		
		/* 设置错误信息 */
		messages : {
			'id': {
			     required: "请填写 主键"
			     ,maxlength:"最大长度为32"
				},
			'cnName': {
			     required: "请填写 中文名字"
			     ,maxlength:"最大长度为100"
				},
			'enName': {
			     required: "请填写 英文名称"
			     ,maxlength:"最大长度为50"
				},
			'sex': {
			     required: "请填写 性别，dict"
			     ,maxlength:"最大长度为1"
				},
			'mobile': {
			     required: "请填写 手机"
			     ,maxlength:"最大长度为255"
				},
			'email': {
			     required: "请填写 电子邮箱"
			     ,maxlength:"最大长度为100"
				},
			'telephone': {
			     required: "请填写 电话"
			     ,maxlength:"最大长度为255"
				},
			'hireDate': {
			     required: "请填写 入职时间"
			     ,maxlength:"最大长度为19"
				},
			'fireDate': {
			     required: "请填写 离职时间"
			     ,maxlength:"最大长度为19"
				},
			'empState': {
			     required: "请填写 员工有效状态，dict"
			     ,maxlength:"最大长度为1"
				},
			'company': {
			     required: "请填写 所属公司，dict 名称或id根据实际情况定"
			     ,maxlength:"最大长度为45"
				},
			'organId': {
			     required: "请填写 所属部门"
			     ,maxlength:"最大长度为32"
				},
			'position': {
			     required: "请填写 职务，dict"
			     ,maxlength:"最大长度为50"
				},
			'displayName': {
			     required: "请填写 应用程序中显示的名子"
			     ,maxlength:"最大长度为45"
				},
			'modifyTime': {
			     required: "请填写 修改时间"
			     ,maxlength:"最大长度为19"
				},
			'chargeDepartment': {
			     required: "请填写 主管部门组织id"
			     ,maxlength:"最大长度为32"
				},
			'validFlag': {
			     required: "请填写 有效标志"
			     ,maxlength:"最大长度为1"
				}
		}
//		,
//		errorPlacement : function(error, element) {
//			var errorContent = $(element).next();
//			if ($(element).attr("name") == "emailYzm") {
//				errorContent = $(element).next().next().next();
//			}
//			errorContent.empty();
//			errorContent
//					.append($('<img src="'
//							+ ctx
//							+ '/images/userReg/zc_prix1.jpg" class="abs zc_prix left341" />'));
//
//			$(errorContent).show();
//			error.appendTo(errorContent);
//
//		},
//		success : function(label, element) {
//			var errorContent = $(element).next();
//			if ($(element).attr("name") == "emailYzm") {
//				errorContent = $(element).next().next().next();
//			}
//			$(errorContent).hide();
//			$(label).remove();
//		}

	});
}

